	function getItemAttrs(){
		var itemAttrs = {
			'supplier': {
				'label': '软件供应商',
				'type': 'select'
			},
			'device': {
				'label': '设备类型',
				'type': 'select'
			},
			'area': {
				'label': '软件线路分类',
				'type': 'select'
			},
			'type': {
				'label': '软件类型',
				'type': 'select'
			},
			'softname': {
				'label': '软件文件名称',
				'type': 'text'
			},
			'beforevision': {
				'label': '升级版本前',
				'type': 'text'
			},
			'aftervision': {
				'label': '升级版本后',
				'type': 'text'
			},
			'downloadtime1': {
				'label': '软件开始下载时间',
				'type': 'date'
			},
			'downloadtime2': {
				'label': '软件完成下载时间',
				'type': 'date'
			},
			'finish': {
				'label': '已完成下载',
				'type': 'radio'
			},
			'back': {
				'label': '回退',
				'type': 'radio'
			},
			'responsible': {
				'label': '回退责任方',
				'type': 'radio'
			},
			'explain': {
				'label': '软件修改问题说明',
				'type': 'textarea'
			},
			'problem': {
				'label': '下载后出现问题',
				'type': 'textarea'
			},
			'remark': {
				'label': '回退备注',
				'type': 'textarea'
			}
		}
		return itemAttrs;
	}

	function createAddForms(options, data) {
		var itemAttrs = getItemAttrs();
		var form = $('<form/>', {
			'class': 'form add-form'
		});
		for (var key in itemAttrs) {
			var formGroup = $('<div/>', {
				'class': 'form-group col-xs-4'
			});
			var label = $('<label/>', {
				'for': 'form-' + key,
				'text': itemAttrs[key]['label']
			});
			var inputType = itemAttrs[key]['type'];
			var input = $('<input/>', {
					'type': inputType,
					'class': 'form-control',
					'id': 'form-' + key,
					'name':'form-' + key
				});
			switch (inputType) {
				case 'select':
					input = $('<select/>', {
							'type': inputType,
							'class': 'form-control',
							'id': 'form-' + key,
							'name':'form-' + key
						});
					for (var i = 0, l = options[key].length; i < l; i++) {
						var option = $('<option/>', {
							'value': options[key][i],
							'text': options[key][i],
						});
						if (data) {
							if (data[key] == options[key][i]) {
								option.attr('checked', true);
							} else {
								option.attr('checked', false);
							};
						};
						input.append(option);
					}
					formGroup.append(label).append(input);
					break;
				case 'date':
					input.attr('type', 'text');
					if (data) {
						input.val(data[key]);
					};
					input.datepicker({
						changeMonth: true,
						changeYear: true,
						constrainInput: true,
						dateFormat: "yy-mm-dd",
						duration: 'fast',
						hideIfNoPrevNext: true,
						monthNamesShort: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
						dayNamesMin: ['日', '一', '二', '三', '四', '五', '六'],
						selectOtherMonths: true,
						showAnim: 'fadeIn',
						showOtherMonths: true,
						showWeek: false,
						yearSuffix: ''
					});
					formGroup.append(label).append(input);
					break;
				case 'radio':
					var radioLabel = $('<label/>', {
						'text': itemAttrs[key]['label']
					});
					var radios = $('<div/>', {
						'class': 'form-inline'
					});
					var radio1 = $('<div/>', {
						'class': 'radio col-xs-2'
					});
					var radio0 = $('<div/>', {
						'class': 'radio col-xs-2'
					});
					var label1 = $('<label/>', {
						'text': '是'
					});
					var label0 = $('<label/>', {
						'text': '否'
					});
					var input1 = $('<input/>', {
						'type': inputType,
						'name': 'form-' + key,
						'id': 'form-' + key + '1',
						'value': 1
					});
					var input0 = $('<input/>', {
						'type': inputType,
						'name': 'form-' + key,
						'id': 'form-' + key + '0',
						'value': 0
					});
					if (data) {
						if (data[key] == 1) {
							input1.attr('checked', 'checked');
						} else {
							input0.attr('checked', 'checked');
						};
					};
					radio1.append(label1.prepend(input1));
					radio0.append(label0.prepend(input0));
					radios.append(radio1).append(radio0);
					formGroup.append(radioLabel).append(radios);
					break;
				case 'textarea':
					input = $('<textarea>', {
						'class': 'form-control',
						'id': 'form-' + key,
						'name':'form-' + key
					});
					if (data) {
						input.val(data[key]);
					};
					formGroup.attr('class', 'form-group col-xs-12').append(label).append(input);
					break;
				default:
					if (data) {
						input.val(data[key]);
					};
					formGroup.append(label).append(input);
			}
			form.append(formGroup);
		}
		return form;
	}

	function createDetailForm(data) {
		var itemAttrs = getItemAttrs();
		var form = $('<div/>', {
			'class': 'detail-form'
		});
		for (var key in itemAttrs) {
			var dataBlock = $('<div/>', {
				'class': 'col-md-4'
			});
			var head = $('<label/>', {
				'text': itemAttrs[key]['label']
			});
			var content = $('<p/>', {
				'text': data[key]
			});
			if (itemAttrs[key]['type'] == 'radio') {
				content.text(data[key] == '1'? '是' : '否');
			} else if ((itemAttrs[key]['type'] == 'textarea')){
				dataBlock.attr('class', 'col-xs-12');
			};
			dataBlock.append(head).append(content);
			form.append(dataBlock);
		}
		return form;
	}

	function itemHandler(action, id) {
		action = action || 'add';
		var text = "";
		$('#dialog-submit').off('click');
		if (action == 'add') {
			text = "添加记录";
			if ($('#dialog-modal-body').find('.add-form').length == 0) {
				$.get('/metro/get_options', function(options){
					var form = createAddForms(options);
					$('#dialog-modal-body').empty().append(form);
				}, 'json');
			};
			$('#dialog-submit').on('click', function() {
				var itemAttrs = getItemAttrs();
				var oQuery = {};
				for(var key in itemAttrs) {
					if (itemAttrs[key]['type'] == 'radio') {
						oQuery[key] = $('[name="form-' + key + '"]:checked').val();
					} else {
						oQuery[key] = $('[name="form-' + key + '"]').val();
					};
				}
				$.post('/metro/add_software_version_data', oQuery, function(result) {
					if (result.status == 1) {
						$('#dialog-modal-body').empty();
						getList();
					} else {
						alert('添加失败');
					};
				}, 'json');
			});
		} else if(action == 'update') {
			text = "修改记录";
			var oQuery = {
				'id': id
			};
			var optionsReturn = false;
			var dataReturn = false;
			var options = undefined;
			var data = undefined;
			$.get('/metro/get_options', function(result){
				if (dataReturn) {
					var form = createAddForms(result, data);
					$('#dialog-modal-body').empty().append(form);
				} else {
					options = result;
					optionsReturn = true;
				}
			}, 'json');
			$.get('/metro/get_software_version_item', oQuery, function(result){
				if (optionsReturn) {
					var form = createAddForms(options, result);
					$('#dialog-modal-body').empty().append(form);
				} else {
					data = result;
					dataReturn = true;
				};
			}, 'json');
			$('#dialog-submit').on('click', function() {
				var itemAttrs = getItemAttrs();
				var oQuery = {
					'id': id
				};
				for(var key in itemAttrs) {
					if (itemAttrs[key]['type'] == 'radio') {
						oQuery[key] = $('[name="form-' + key + '"]:checked').val();
					} else {
						oQuery[key] = $('[name="form-' + key + '"]').val();
					};
				}
				$.post('/metro/update_software_version_data', oQuery, function(result) {
					if (result.status == 1) {
						$('#dialog-modal-body').empty();
						getList();
					} else {
						alert('添加失败');
					};
				}, 'json');
			});
		} else if(action == 'detail') {
			text = "详细记录";
			getItem(id);
		} else if(action == 'delete') {
			text = "删除记录";
			$('#dialog-modal-body').empty().append('<p>确定删除？</p>');
			$('#dialog-submit').on('click', function() {
				deleteItem(id);
			});
		} else {

		};
		$('#dialog-modal-title').text(text);
		$('#dialog-modal').modal('show');

	}

	function deleteItem(id) {
		var oQuery = {
			'id': id
		}
		$.post('/metro/delete_software_version_item', oQuery, function(result) {
			if (result.status == 1) {
				getList();
			} else {
				alert('删除不成功');
			};
		}, 'json')
	}

	function updateItem() {

	}

	function getList() {
		var filters = $('.filter-option');
		var oQuery = {};
		for(var i = 0, l = filters.length; i < l; i++){
			if ($(filters[i]).val() != '') {
				oQuery[$(filters[i]).data('filter')] = $(filters[i]).val();
			};
		}
		$('#version-list tbody').empty();
		$.get('/metro/get_software_version_data', oQuery, function(result){
			for(var i = 0, l = result.data.length; i < l; i++) {
				var tr = createTableRow(result.data[i]);
				$('#version-list tbody').append(tr);
			}
		}, 'json');
	}

	function getItem(id) {
		var oQuery = {
			'id': id
		};
		$.get('/metro/get_software_version_item', oQuery, function(result){
			var form = createDetailForm(result);
			$('#dialog-modal-body').empty().append(form);
		}, 'json');
	}

	function createTableRow(dataArray) {
		var tr = $('<tr/>');
		for(var i = 0, l = dataArray.length; i <= l; i++) {
			var td = $('<td/>');
			if (i == 0) {
				td.text(dataArray[i]).addClass('hide');
			} else if(i == 5) {
				td.text(dataArray[i] == '1'? '是' : '否');
			} else if(i == l) {
				var itemID = dataArray[0];
				var updateBtn = $('<a/>', {
					'href':'javascript:itemHandler("update", ' + itemID + ')',
					'text': '修改'
				});
				var detailBtn = $('<a/>', {
					'href':'javascript:itemHandler("detail", ' + itemID + ')',
					'text': '详细'
				});
				var deleteBtn = $('<a/>', {
					'href':'javascript:itemHandler("delete", ' + itemID + ')',
					'text': '删除'
				});
				td.append(updateBtn).append('｜').append(detailBtn).append('｜').append(deleteBtn);
			} else {
				td.text(dataArray[i]);
			};
			tr.append(td);
		}
		return tr;
	}


$(function() {

	getList();
	$('#add-item').click(function() {
		itemHandler('add');
	});
	$('#filter-submit').click(function() {
		getList();
	});
});